﻿using BLL;
using BONGDA.Excel;
using DTO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BONGDA
{
    public partial class frmOutFootballer : Form
    {
        public frmOutFootballer()
        {
            InitializeComponent();
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {

        }

        private void frmOutFootballer_Load(object sender, EventArgs e)
        {
            DataTable dt = DoiBong_BLL.SelectTen();
            cboDoiBong.DisplayMember = "TenDoiBong";
            cboDoiBong.ValueMember = "MaDoiBong";
            cboDoiBong.DataSource = dt; 
            if (dt.Rows.Count == 0)
            {
            }
            else
            {
                try
                {
                    // Thông tin đội bóng
                    DoiBong_DTO dto = DoiBong_BLL.SelectByID(Convert.ToInt32(cboDoiBong.SelectedValue.ToString()));
                    lblhlv.Text = dto.HLV;
                    Image FetchedImg;
                    MemoryStream stream = new MemoryStream(dto.ByteLogo);
                    FetchedImg = Image.FromStream(stream);
                    picLogo.Image = FetchedImg;

                    // Thông tin sân vận động
                    SanVanDong_DTO dtoSan = SanVanDong_BLL.SelectByID(dto.MaSan);
                    Image FetchedImgSan;
                    MemoryStream streamSan = new MemoryStream(dtoSan.ByteTours);
                    FetchedImgSan = Image.FromStream(streamSan);
                    picTours.Image = FetchedImgSan;
                }
                catch (Exception)
                {
                    MessageBox.Show("Không thể lấy thông tin đội bóng!", "Lỗi",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                }
                HienThiDSCauThu(Convert.ToInt32(cboDoiBong.SelectedValue.ToString()));
            }
    
        }
        
        private void HienThiDSCauThu(int maDoiBong)
        {
            try
                {
                    DataTable dtCauThu = CauThu_BLL.SelectTenbyDoiBong(maDoiBong);
                    dgvCauThu.DataSource = dtCauThu;
                    if (dtCauThu.Rows.Count != 0)
                    {
                        lblSlgCauThu.Text = Convert.ToString(dtCauThu.Rows.Count);
                        CauThu_DTO dtoCauThu = CauThu_BLL.SelectByID(Convert.ToInt32(dtCauThu.Rows[0]["MaCauThu"]));
                        lblMaCauThu.Text = dtoCauThu.MaCauThu.ToString();
                        lblTencauthu.Text = dtoCauThu.TenCauThu;
                    }
                }
                catch (Exception)
                {
                    MessageBox.Show( "Không thể lấy thông tin cầu thủ!", "Lỗi",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                }
        }

        private void cboDoiBong_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                // Thông tin đội bóng
                DoiBong_DTO dto = DoiBong_BLL.SelectByID(Convert.ToInt32(cboDoiBong.SelectedValue.ToString()));
                lblhlv.Text = dto.HLV;
                Image FetchedImg;
                MemoryStream stream = new MemoryStream(dto.ByteLogo);
                FetchedImg = Image.FromStream(stream);
                picLogo.Image = FetchedImg;

                // Thông tin sân vận động
                SanVanDong_DTO dtoSan = SanVanDong_BLL.SelectByID(dto.MaSan);
                Image FetchedImgSan;
                MemoryStream streamSan = new MemoryStream(dtoSan.ByteTours);
                FetchedImgSan = Image.FromStream(streamSan);
                picTours.Image = FetchedImgSan;
            }
            catch (Exception)
            {
                MessageBox.Show("Không thể lấy thông tin đội bóng!", "Lỗi",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
            HienThiDSCauThu(Convert.ToInt32(cboDoiBong.SelectedValue.ToString()));
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            frmAddFballer frm = new frmAddFballer(Convert.ToInt32(cboDoiBong.SelectedValue.ToString()));
            frm.ShowDialog();
            HienThiDSCauThu(Convert.ToInt32(cboDoiBong.SelectedValue.ToString()));
        }

        private void dgvCauThu_SelectionChanged(object sender, EventArgs e)
        {
            try
            {
                if (dgvCauThu.SelectedRows.Count > 0)
                {
                    // Thông tin đội bóng
                    CauThu_DTO dto = CauThu_BLL.SelectByID(Convert.ToInt32(dgvCauThu.SelectedRows[0].Cells[0].Value));
                    lblMaCauThu.Text = dto.MaCauThu.ToString();
                    lblTencauthu.Text = dto.TenCauThu;
                }
            }
            catch (Exception)
            {
            }            
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            try
            {
                frmUPFballer frm = new frmUPFballer(Convert.ToInt32(lblMaCauThu.Text));
                frm.ShowDialog();
                HienThiDSCauThu(Convert.ToInt32(cboDoiBong.SelectedValue.ToString()));
            }
            catch (Exception)
            {
                MessageBox.Show("Chọn CẦU THỦ muốn chỉnh sữa!", "Thông báo",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
            }
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            try
            {
                int maTam = Convert.ToInt32(lblMaCauThu.Text);
                DialogResult kq;
                kq = MessageBox.Show("Xóa cầu thủ \"" + lblTencauthu.Text + "\"?", "Thông báo",
                MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (kq == DialogResult.OK)
                {
                    CauThu_BLL.Delete(maTam); 
                    HienThiDSCauThu(Convert.ToInt32(cboDoiBong.SelectedValue.ToString()));
                    MessageBox.Show("Xóa CẦU THỦ thành công!",
                                "Thông báo",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Chọn cầu thủ muốn xóa!",
                                "Thông báo",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
            }
        }

        private void btnIm_Click(object sender, EventArgs e)
        {
            try
            {
                string oldPath = Directory.GetCurrentDirectory();
                OpenFileDialog of = new OpenFileDialog();
                of.ShowDialog();
                string strPathName = of.FileName;
                Directory.SetCurrentDirectory(oldPath);
                DataTable dt = ExcelRead.getSheet(strPathName, "sheet1");
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    CauThu_DTO dto = new CauThu_DTO();
                    dto.TenCauThu = dt.Rows[i].ItemArray[1].ToString();
                    dto.MaDoiBong = int.Parse(dt.Rows[i].ItemArray[2].ToString());
                    dto.SoAo = int.Parse(dt.Rows[i].ItemArray[3].ToString());
                    dto.QuocTich = dt.Rows[i].ItemArray[4].ToString();
                    dto.MaViTri = dt.Rows[i].ItemArray[5].ToString();
                    dto.BanThang = 0;
                    dto.TheVang = 0;
                    dto.TheDo = 0;

                    CauThu_BLL.Insert(dto);
                }
                MessageBox.Show("Import dữ liệu thành công!", "Thông báo",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);

                HienThiDSCauThu(Convert.ToInt32(cboDoiBong.SelectedValue.ToString()));
            }
            catch (Exception)
            {

                MessageBox.Show("Không thể Import dữ liệu!", "Thông báo",
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void btnEx_Click(object sender, EventArgs e)
        {
            try
            {
                string oldPath = Directory.GetCurrentDirectory();
                SaveFileDialog sf = new SaveFileDialog();
                sf.ShowDialog();
                string strFileName = sf.FileName;
                Directory.SetCurrentDirectory(oldPath);
                ExcelWrite myExcel = new ExcelWrite();
                List<String> list = myExcel.DGVToExcel(dgvCauThu);
                String filePath = Directory.GetCurrentDirectory() + strFileName;
                myExcel.WriteDateToExcel(strFileName, list, "A1", "F1", "A2");
                MessageBox.Show("Export dữ liệu thành công!", "Thông báo",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);
                Process.Start(strFileName);
            }
            catch (Exception)
            {
            }
            
        }
    }
}
